#include<signal.h>
#include<unistd.h>
#include<iostream>
using namespace std;

void handler(int signo)
{
    cout<<"...Get a signal,number:"<<signo<<endl;
    alarm(3);
}

int main()
{
    signal(SIGALRM,handler);
    int n = alarm(3);//返回值是上一个闹钟的剩余时间。
/*在 Linux 中，`alarm()` 函数的返回值表示之前设置的定时器剩余的时间，以秒为单位。具体来说，有以下几种情况：

1. 如果之前没有设置定时器，则返回值为 0。
2. 如果之前设置了一个定时器，并且定时器尚未到期，则返回值为剩余的时间。
3. 如果之前设置了一个定时器，并且定时器已经到期，则返回值为 0。
例如，如果你在调用 `alarm(5)` 设置一个 5 秒的定时器之前没有设置过定时器，
那么 `alarm()` 的返回值将为 0。如果在定时器到期之前调用 `alarm(3)`，
则 `alarm()` 的返回值将为之前定时器剩余的时间（例如，剩余 2 秒）。如果定时器已经到期，那么 `alarm()` 的返回值将为 0。
需要注意的是，`alarm()` 函数的返回值只表示之前定时器的剩余时间，而不是当前定时器的剩余时间。因此，
在使用 `alarm()` 函数时，如果你需要获取当前定时器的剩余时间，应该在设置新的定时器之前保存返回值。
另外，如果你想取消当前定时器而不关心剩余时间，可以通过调用 `alarm(0)` 来实现。
这将取消当前定时器并返回剩余时间（如果有的话），同时不设置新的定时器。*/
    while(1){
        cout<<"proc is running..."<<endl;
        sleep(1);
    }
    return 0;
}